home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / ums / IntuiNews1_4a.lha / UMS / Rexx / Schnulli.intui < prev    next >
Text File  |  1996-03-29  |  5KB  |  227 lines

  1. /****** Schnulli.intui *******************************************************
  2.  
  3.     NAME
  4.       $VER: Schnulli.intui 1.1 (29.3.96) by Olaf Peters
  5.  
  6.           *** This script is only useful in the german MausNet (R) ***
  7.  
  8.     AUTHOR
  9.       Olaf Peters
  10.       Kulmer Str. 7
  11.       28237 Bremen
  12.  
  13.       op@hb2.maus.de / olf@informatik.uni-bremen.de
  14.  
  15.     SYNOPSIS
  16.       Bestellt Dateien aus dem Programmteil per Schnulli.
  17.  
  18.     FUNCTION
  19.       Wer kennt es nicht: man liest in IntuiNews die Nachrichten über die
  20.       neuesten Uploads in der Maus, schreibt sich die Nummern/Namen der
  21.       interessanten Sachen heraus, schließt das Fenster, schreibt eine PM
  22.       an Schnulli.
  23.  
  24.       Das ist mit Schnulli.intui vorbei: auf Tastendruck erscheint ein
  25.       Requester, in dem man nun direkt die gewünschten Programme eintragen
  26.       kann. Das Schreiben der Mail an Schnulli erfolgt dann automatisch.
  27.  
  28.     CONFIGURATION
  29.       Ist nur sinnvoll im Nachrichtenfenster.
  30.  
  31.       ums.config Beispiel:
  32.  
  33.         ( IntuiNews.Rexx
  34.           "MessageWindow   F1   UMS:Rexx/Schnulli\n"
  35.         )
  36.  
  37.       Im Script (s.u.) kann noch angegeben werden, in welchen Mailfolder
  38.       die Nachrichten an Schnulli abgelegt werden sollen.
  39.  
  40.     NEEDS
  41.       Für die Benutzung des Scripts muß folgendes installiert sein:
  42.  
  43.       · mindestens IntuiNews v1.3b (wegen des ARexx-Ports)
  44.       · mindestens UMSServer v11.20+ (wegen des UMSDupAccount Tricks für
  45.         normale Logins)
  46.       · reqtools.library und reqrexxtools.library (für die Requester)
  47.  
  48.     BUGS
  49.       Keine bekannt. Sollten welche auftauchen, bitte mailen (s.o.)
  50.  
  51.     $HISTORY:
  52.  
  53.      29.3.96  1.1   : die erzeugte Nachricht wird jetzt in das
  54.                       Artikelfenster eingetragen (IN 1.3b)
  55.     13.10.95  1.0   : initial
  56.  
  57. ******************************************************************************
  58. *
  59. */
  60.  
  61. /*
  62.  * ------------------------------------------------------------------------
  63.  *
  64.  *  Hier den Folder eintragen, in den die Nachricht abgelegt werden soll.
  65.  *
  66.  *  z.B.
  67.  *
  68.  * ctrlFolder = "Maus.Schnulli"
  69.  *
  70.  */
  71.  
  72. ctrlFolder = "Maus.Schnulli"
  73.  
  74. /* ------------------------------------------------------------------------ */
  75.  
  76. ProgramName = "Schnulli.intui"
  77. lf = '0a'x
  78. cVersion = "1.1 (29.3.96)"
  79.  
  80. eztags = "rtez_flags=ezreqf_centertext"
  81. rstags = "rtgs_flags=gsreqf_centertext"
  82.  
  83. /*** Startup ***/
  84.  
  85. options results
  86.  
  87. RC = 0
  88. account = 0
  89.  
  90. signal on BREAK_C
  91. signal on BREAK_D
  92. signal on BREAK_E
  93. signal on BREAK_F
  94. signal on ERROR
  95. signal on HALT
  96. signal on IOERR
  97. signal on SYNTAX
  98.  
  99. /*/// "Libs einbinden" */
  100.  
  101. if ~show(l, "rexxreqtools.library") then
  102.   if ~addlib("rexxreqtools.library", 0, -30, 0) then do
  103.     say "rexxreqtools.library konnte nicht geöffnet werden!" ;
  104.     exit(20) ;
  105.   end
  106.  
  107. libname = "ums.library"
  108. if ~show("L", "ums.library") then do
  109.   if ~addlib("ums.library", 0, -210, 8) then do
  110.     say "ums.library not found!"
  111.     exit(20)
  112.   end
  113. end
  114. call UMSInitConsts
  115.  
  116. /*\\\*/
  117.  
  118. /*/// "Login duplizieren" */
  119.  
  120. 'info screen'
  121. screen = result
  122.  
  123. eztags = eztags "rt_pubscrname='" || screen || "'"
  124. rstags = rstags "rt_pubscrname='" || screen || "'"
  125.  
  126. 'status'
  127.  
  128. if result ~= "MESSAGE" then do
  129.     rtezrequest("Du mußt im Nachrichtenfenster sein,"|| lf || "um dieses Script auszuführen!", "_Abbruch", ProgramName, eztags)
  130.     call HALT
  131. end
  132.  
  133. 'getaccount'
  134.  
  135. if (result = "RESULT") | (result = 0) then do
  136.     rtezrequest("Script konnte keinen Account bekommen!", "_Abbruch", ProgramName, eztags)
  137.     call HALT
  138. end ; else
  139.     login = result
  140.  
  141. account = UMSLogin("", login, "")
  142. if account = 0 then do
  143.     rtezrequest("Konnte Account nicht duplizieren!", "_Abbruch", ProgramName, eztags)
  144.     call HALT
  145. end
  146.  
  147. /*\\\*/
  148.  
  149. 'getmsgnum'
  150.  
  151. if result = "RESULT" then do
  152.     rtezrequest("No message no fun! :-)", "_Abbruch", ProgramName, eztags)
  153.     call HALT
  154. end ; else
  155.     msgnum = result
  156.  
  157. drop msg.
  158. if ~UMSReadMsgHeader(account, msgnum, msg., true) then do
  159.     rtezrequest("Nachricht konnte nicht gelesen werden!", "_Abbruch", ProgramName, eztags)
  160.     call HALT
  161. end
  162.  
  163. if upper(right(msg.UMSCODE_FromAddr, 5)) ~= ".MAUS" then do
  164.     rtezrequest(msg.UMSCODE_FromName "hat keine Mausadresse.", "_Abbruch", ProgramName, eztags)
  165.     call HALT
  166. end
  167.  
  168. parse var msg.UMSCODE_FromAddr maus ".maus"
  169. if UMSReadConfigUserName(account, "maus." || maus) = "" then do
  170.     rtezrequest("Für die Maus" maus "gibt's hier keinen Exporter!", "_Abbruch", ProgramName, eztags)
  171.     call HALT
  172. end
  173.  
  174. if upper(word(msg.UMSCODE_Subject, 1)) = "GPT" then
  175.     default = strip(word(msg.UMSCODE_Subject, 2), 'B', ':')
  176. else
  177.     default = ""
  178.  
  179. text = rtgetstring(default, "Was darf's denn sein?", ProgramName, "_Okay|_Abbruch", rstags, rtres)
  180. if rtres = 0 then
  181.     call HALT
  182.  
  183. drop ctrl.
  184. ctrl.UMSCODE_ToName = "Saug Tausch"
  185. ctrl.UMSCode_ToAddr = msg.UMSCODE_FromAddr
  186. ctrl.UMSCODE_Subject = "Schnulli.intui " || cVersion
  187. ctrl.UMSCODE_MsgText = text || lf
  188. ctrl.UMSCODE_Folder  = ctrlFolder
  189.  
  190. msgnum = UMSWriteMsg(account, ctrl.)
  191. if msgnum = 0 then do
  192.     rtezrequest("Nachricht konnte nicht geschrieben werden:" || lf || "UMS Error #" || UMSErrNum(account) || ":" UMSErrTxt(account), "_Abbruch", ProgramName, eztags)
  193. end ; else
  194.     'addmsg' msgnum
  195.  
  196. /*/// "Final cleanup" */
  197.  
  198. BREAK_C:
  199. BREAK_D:
  200. BREAK_E:
  201. BREAK_F:
  202. ERROR:
  203. HALT:
  204. IOERR:
  205. SYNTAX:
  206.  
  207. /*** Logout ***/
  208.  
  209. if account ~= 0 then do
  210.   call UMSLogout(account)
  211.   account = 0
  212. end
  213.  
  214. exit 0
  215.  
  216. /*** Support ***/
  217.  
  218. CheckErr: procedure expose account
  219.   err = UMSErrNum(account)
  220.   if err ~= 0 then do
  221.     rtezrequest("UMS Error #" || err || ": " || UMSErrTxt(account))
  222.   end
  223. return
  224.  
  225. /*\\\*/
  226.  
  227.